package xx.services.page.inter;

import javax.ws.rs.FormParam;
import javax.ws.rs.PathParam;

/**
 * page页面预览实体管理服务接口
 * 
 * @Path (Constants.RESTFUL_ROOT_PATH + "/page/view")
 * @author chenxiang 2010-12-21
 */
public interface IViewInterface
{
    /**
     * 获取一个View<br>
     * 
     * @GET
     * @Path ("/{view_id}")
     * @param viewId-@PathParam("view_id")
     *            ViewID
     * @return View实体
     * @author chenxiang
     */
    public String get(@PathParam("view_id")
    long viewId);

    /**
     * 获取一个View html代码
     * 
     * @GET
     * @Path ("/{view_id}/html")
     * @param viewId-@PathParam("view_id")
     *            View ID
     * @return View Html代码，不是json数据
     * @author chenxiang
     */
    public String getHtml(@PathParam("view_id")
    long viewId);

    /**
     * 修改一个View demo。<br>
     * 
     * @PUT
     * @Path ("/{view_id}")
     * @param viewId
     *            -@PathParam("view_id") View ID
     * @param view
     *            -@FormParam("view") View demo的Json字符串
     * @param title
     *            -@FormParam("title") 列表标题
     * @param container
     *            -@FormParam("container") 容器，一般是一个div，如：<div class="container">${container}</div>
     * @param templet
     *            -@FormParam("templet") 模板
     * @param demo
     *            -@FormParam("demo") demo实例
     * @param shape
     *            -@FormParam("shape") 图片样子
     * @param description
     *            -@FormParam("description") 描述
     * @param sign
     *            -@FormParam("sign") 标志，从Entity继承过来的实体才有标志
     * @param clazz
     *            -@FormParam("clazz") 对应的实体class名称，<br>
     *            如：评论列表对应comment，回复列表对应reply，文章列表、文档列表、相册列表等从Entity继承过来的都对应entity。<br>
     *            注：从Entity继承过来的必须通过sign来区分，其他的如回复reply的sign为0.
     * @param clazz_id
     *            -@FormParam("clazz_id") clazz对应的实体ID
     * @return 新增的View 实体
     * @author chenxiang
     */
    public String update(@PathParam("view_id")
    long viewId, @FormParam("view")
    String view, @FormParam("title")
    String title, @FormParam("container")
    String container, @FormParam("templet")
    String templet, @FormParam("demo")
    String demo, @FormParam("shape")
    String shape, @FormParam("description")
    String description, @FormParam("sign")
    int sign, @FormParam("clazz")
    String clazz, @FormParam("clazz_id")
    long clazzId);
}
